/**
 * @file        cm_common.h
 * @brief       OpenCPU 通用头文件，包含常用标准库、操作系统接口和硬件抽象接口
 */

#ifndef __CM_COMMON_H__
#define __CM_COMMON_H__

/****************************************************************************
 * Standard Library
 ****************************************************************************/
#include <stddef.h>  // NULL, size_t
#include <stdint.h>  // uint8_t, int32_t 等固定宽度整数
#include <stdbool.h> // bool, true, false
#include <stdio.h>   // printf, sprintf
#include <stdlib.h>  // malloc, free
#include <string.h>  // memcpy, memset, strcmp
#include <stdarg.h>  // va_list 等可变参数支持

/****************************************************************************
 * Platform OS & System
 ****************************************************************************/
#include "cm_os.h"      // 操作系统接口（任务、信号量、延时等）
#include "cm_sys.h"     // 系统级接口（初始化、状态查询等）
#include "cm_pm.h"      // 电源管理
#include "cm_cpuinfo.h" // CPU信息接口
#include "cm_sim.h"     // SIM卡接口
#include "cm_rtc.h"     // 实时时钟接口

/****************************************************************************
 * Hardware & IO
 ****************************************************************************/
#include "cm_iomux.h"   // IO复用配置
#include "cm_uart.h"    // UART接口
#include "cm_virt_at.h" // 虚拟AT接口

/****************************************************************************
 * Memory & Utilities
 ****************************************************************************/
#include "cm_mem.h" // 内存管理（malloc/free封装等）

// 线程相关定义

// 是否开启 MQTT 服务线程
#define ENABLE_MQTT_SERVICE 0

// 是否开启数据上报线程
#define ENABLE_MQTT_PUBLISH 0

// 是否开启modbus主机模式组件初始化任务
#define ENABLE_MODBUS_MASTER_INIT 1

// 是否开启系统运行呼吸任务（打印内存信息）
#define ENABLE_SYSTEM_BREATH_TASK 1



#define portTICK_PERIOD_MS      (5)     // 每个tick的周期

#include <math.h>  // 需包含数学库
#include <stdio.h>      // 标准输入输出库，提供 printf、scanf 等函数，用于控制台输入输出
#include "cm_os.h"//os相关函数头文件
#include "cm_mem.h"


#endif /* __CM_COMMON_H__ */
